package influence.propagation.core;

import influence.propagation.exception.IllegalArgumentException;
import influence.propagation.exception.InputFormatException;

/**
 * La classe che crea effettivamente il modello.
 * @author Valerio
 *
 */
public interface ModelBuilder {
	
	/**
	 * Crea le istanze del database in base al modello e alla stringa del file
	 * @param token
	 */
	void create(String token) throws InputFormatException;
	
	/**
	 * Aggiunge un nodo attivo al modello
	 * @param name il nome del nodo
	 */
	void createActiveNode(String name) throws IllegalArgumentException;
	
	/**
	 * Restituisce il modello
	 * @return
	 */
	Model getInstance();
	
}
